5.4. Использование Ozone в качестве S3-совместимого хранилища
Работа с Ozone: Использование Ozone в качестве S3-совместимого хранилища
Apache Ozone предоставляет S3 Gateway (S3G), который позволяет использовать Ozone в качестве S3-совместимого хранилища. Это позволяет интегрировать Ozone с существующими инструментами и приложениями, работающими с Amazon S3 API, такими как AWS CLI, MinIO, или приложения на базе S3 SDK.
1. Настройка S3 Gateway
S3 Gateway (S3G) обеспечивает доступ к данным через HTTP-протокол с использованием S3 API.
Конфигурация S3 Gateway
Добавьте следующие параметры в файл ozone-site.xml
для включения S3 Gateway:
<configuration>
<property>
<name>ozone.s3g.enabled</name>
<value>true</value>
</property>
<property>
<name>ozone.s3g.address</name>
<value>0.0.0.0:9874</value>
</property>
<property>
<name>ozone.s3g.bucket.layout</name>
<value>OBJECT_STORE</value>
</property>
</configuration>
Запуск S3 Gateway
Запустите S3 Gateway на нужном узле:
bin/ozone s3g --daemon start
Проверка статуса S3 Gateway
bin/ozone admin service list
В списке запущенных служб вы должны увидеть S3 Gateway.
2. Создание S3-бакета
Для работы с S3 API сначала создайте S3-бакет. В отличие от обычных бакетов, S3-бакеты создаются с помощью S3 API или команд Ozone Shell.
Создание S3-бакета с Ozone Shell:
bin/ozone sh bucket create s3://my-s3-bucket
3. Использование AWS CLI для взаимодействия с Ozone
AWS CLI можно использовать для управления S3-бакетами и объектами в Ozone. Для этого настройте профиль AWS CLI с указанием Ozone S3 Gateway как конечной точки.
Шаг 1: Установка AWS CLI
Если AWS CLI не установлен, выполните:
sudo apt install awscli
Шаг 2: Настройка AWS CLI для работы с Ozone
Создайте профиль в AWS CLI:
aws configure --profile ozone
При настройке укажите:
- Access Key ID и Secret Access Key: Поскольку это локальное хранилище, введите произвольные значения.
- Default region: Укажите
us-east-1
или любой другой регион. - Output format: Укажите
json
.
Шаг 3: Использование S3 Gateway в качестве конечной точки
Теперь вы можете взаимодействовать с Ozone через AWS CLI, указав S3 Gateway как конечную точку (--endpoint-url
).
4. Примеры команд AWS CLI с Ozone
-
Создание S3-бакета:
aws s3api create-bucket --bucket my-s3-bucket --endpoint-url http://localhost:9874
-
Загрузка файла в S3-бакет:
aws s3 cp localfile.txt s3://my-s3-bucket/ --endpoint-url http://localhost:9874
-
Просмотр списка файлов в S3-бакете:
aws s3 ls s3://my-s3-bucket/ --endpoint-url http://localhost:9874
-
Загрузка файла из S3-бакета:
aws s3 cp s3://my-s3-bucket/localfile.txt ./ --endpoint-url http://localhost:9874
-
Удаление файла из S3-бакета:
aws s3 rm s3://my-s3-bucket/localfile.txt --endpoint-url http://localhost:9874
5. Интеграция с S3 SDK
Ozone поддерживает приложения, использующие S3 SDK (например, на Python, Java, или Go). Укажите в конфигурации приложения адрес S3 Gateway как конечную точку (endpoint
), чтобы данные сохранялись в Ozone.